package com.icedevcloud.upms.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.icedevcloud.common.core.page.PageResult;
import com.icedevcloud.upms.controller.admin.role.dto.AddRoleReqDto;
import com.icedevcloud.upms.controller.admin.role.dto.RolePageReqDto;
import com.icedevcloud.upms.controller.admin.role.dto.SetRoleStatusReqDto;
import com.icedevcloud.upms.controller.admin.role.dto.UpdateRoleReqDto;
import com.icedevcloud.upms.entity.SysRole;

import java.util.List;

/**
 * <p>
 * 角色表 服务类
 * </p>
 *
 * @author XiaoBingBy
 * @since 2023-08-13
 */
public interface ISysRoleService extends IService<SysRole> {

    /**
     * 角色列表接口
     *
     * @param reqDto
     * @return
     */
    PageResult<SysRole> rolePage(RolePageReqDto reqDto);

    /**
     * 获取所有角色
     *
     * @return
     */
    List<SysRole> allRoleList();

    /**
     * 根据用户Id 获取角色
     *
     * @param userId
     * @return
     */
    SysRole getRoleByUserId(Long userId);

    /**
     * 添加角色
     *
     * @param reqDto
     */
    Boolean add(AddRoleReqDto reqDto);

    /**
     * 设置角色状态
     *
     * @param reqDto
     * @return
     */
    Boolean setRoleStatus(SetRoleStatusReqDto reqDto);

    /**
     * 更新角色
     *
     * @param reqDto
     */
    Boolean update(UpdateRoleReqDto reqDto);

    /**
     * 删除角色
     *
     * @param id
     */
    Boolean delete(Long id);

}
